import java.io.Serializable;
import java.util.GregorianCalendar;
import java.util.Observable;
import java.util.TreeMap;


public class Parution extends Observable implements Serializable {
	// ************************************************************************************************************
		// Attributs
		// ************************************************************************************************************
		/**
		 * 
		 */
		private static final long serialVersionUID = 1L;
		private String _reference;
		private GregorianCalendar _date;
		private Periodique _periodique;
		private TreeMap<String, Article> _articles;
		// ************************************************************************************************************
		// Constructeur
		// ************************************************************************************************************
		/**
		 * Constructeur. Cr�e un Parution d'ouvrage au statut NonDisponible.
		 * 
		 * @param numero		num�ro de l'Parution dans l'ouvrage.
		 * @param dateReception	date de la r�ception de cet Parution.
		 * @param ouvrage		ouvrage dont cet Parution est un repr�sentant.
		 */
		public Parution(String reference, GregorianCalendar dateParution, Periodique periodique,TreeMap<String, Article> article) {
			this.setReference(reference);
			this.setDate(dateParution);
			this.lierPeriodique(periodique);
			this.setArticles(article);
			
		} // Fin Constructeur
		
		// ************************************************************************************************************
		// M�thodes priv�es
		// ************************************************************************************************************

		// ------------------------------------------------------------------------------------------------------------
		// Affecteurs

	    public void setArticles(TreeMap<String, Article> articles) {
			_articles = articles;
		}

		private void setReference(String reference) {
			_reference = reference;
		}
		
		private void setDate(GregorianCalendar date) {
			_date = date;
		}


		private void lierPeriodique(Periodique periodique) {
			_periodique = periodique;
		}


		// ************************************************************************************************************
		// M�thodes publiques
		// ************************************************************************************************************
		
		// ------------------------------------------------------------------------------------------------------------
		// Accesseurs
		

		public Periodique getPeriodique() {
			return _periodique;
		}

		public String getReference() {
			return _reference;
		}
		
		
		public GregorianCalendar getDate() {
			return _date;
		}


		public TreeMap<String,Article> getArticles() {
			return _articles;
		}
		
		public String getISSN()
		{
			return getPeriodique().getISSN();
		}
		




}
